// export const increment = { type: "count/increment", data: 1 }
// export const decrement = { type: "count/decrement", data: 1 }

export const increment = (data) => {
  return { type: "count/increment", data: data }
}
export const decrement = (data) => {
  return { type: "count/decrement", data: data }
}

//当action中异步操作 才返回action对象,则以下的方式不能再使用
/* export const incrementWait = (data) => {
  setTimeout(() => {
    return { type: "count/increment", data: data };
  }, 2000);
}; */

//如果action中需要异步执行操作,我们可以直接返回一个函数
//将来在组件中dispatch是这个函数
//我们在创建store的时候,可以添加一个中间件
//中间件检测如果组件dispatch的是一个函数,则直接调用该函数,并传入一个dispatch方法作为参数
//用来函数内部的异步执行完成以后,继续提交到store
export const incrementWait = (data) => {
  return (dispatch) => {
    //异步代码
    setTimeout(() => {
      dispatch({ type: "count/increment", data: data })
    }, 2000)
  }
}
